package jwj8508.swing.outline;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JSeparator;
import java.awt.Font;
import javax.swing.JButton;
import javax.swing.ImageIcon;

// 스윙 메뉴 만들기
// 대부분의 프로그램에는 메뉴가 꼭 존재
// 메뉴바는 항상 프로그램의 최상단에 위치
// 하위 메뉴는 감춰져 있기 때문에 공간을 차지 하지 않음
// 메뉴를 사용하려면 먼저, 컨테이너에 메뉴바를 추가하고, 메뉴에 메뉴항목을 추가하면 됨
// 메뉴바의 메뉴를 클릭하면 메뉴가 표시됨
// 메뉴에 대한 이벤트 처리기를 작성하지 않아도 자동으로 처리됨
// 단, 메뉴항목은 JButton의 일부이기 때문에 마우스 클릭을 처리할 action listener를 추가해야함
// 따라서 클래스가 ActionListener를 구현하도록 하면 메뉴항목에 대한 마우스 클릭을 쉽게 처리 가능

public class J05_HelloSwingMenu extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					J05_HelloSwingMenu frame = new J05_HelloSwingMenu();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public J05_HelloSwingMenu() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu mnFile = new JMenu("File (F)");
		mnFile.setFont(new Font("맑은 고딕", Font.PLAIN, 12));
		menuBar.add(mnFile);
		
		JMenuItem mntmNewFilen = new JMenuItem("New (N)");
		mntmNewFilen.setFont(new Font("Malgun Gothic", Font.PLAIN, 12));
		mnFile.add(mntmNewFilen);
		
		JMenuItem mntmOpenFileo = new JMenuItem("Open File (O)");
		mnFile.add(mntmOpenFileo);
		
		JSeparator separator = new JSeparator();
		mnFile.add(separator);
		
		JMenuItem mntmClosec = new JMenuItem("Close (C)");
		mnFile.add(mntmClosec);
		
		JSeparator separator_1 = new JSeparator();
		mnFile.add(separator_1);
		
		JMenuItem mntmExitx = new JMenuItem("Exit (X)");
		mnFile.add(mntmExitx);
		
		JMenu mnEdite = new JMenu("Edit (E)");
		mnEdite.setFont(new Font("맑은 고딕", Font.PLAIN, 12));
		menuBar.add(mnEdite);
		
		JMenu mnViewv = new JMenu("View (V)");
		menuBar.add(mnViewv);
		
		JMenu mnToolt = new JMenu("Tool (T)");
		menuBar.add(mnToolt);
		
		JMenu mnWindoww = new JMenu("Window (W)");
		menuBar.add(mnWindoww);
		
		JMenu mnHelph = new JMenu("Help (H)");
		menuBar.add(mnHelph);
		
		JMenuItem mntmAbout = new JMenuItem("About");
		mnHelph.add(mntmAbout);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		JButton btnNewButton = new JButton("New button");		
		contentPane.add(btnNewButton, BorderLayout.CENTER);
	}

}
